#include <LED.h>

/* 函数作用：初始化与LED相关的GPIO引脚
 * 参数说明：void
 * 返回值：void
 */
void led_init(void)
{
    GPIO_InitTypeDef GPIO_InitStrue;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // 开启GPIOB时钟

    GPIO_InitStrue.GPIO_Mode  = GPIO_Mode_Out_PP; // 推挽输出
    GPIO_InitStrue.GPIO_Pin   = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_5;
    GPIO_InitStrue.GPIO_Speed = GPIO_Speed_50MHz;

    GPIO_Init(GPIOB, &GPIO_InitStrue); // 初始化与LED相关的引脚

    GPIO_SetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_5); // 初始化完成后，关闭LED
}

// 点亮红色LED
void led_red_ON(void)
{
    GPIO_ResetBits(GPIOB, GPIO_Pin_5);
}

// 关闭红色LED
void led_red_OFF(void)
{
    GPIO_SetBits(GPIOB, GPIO_Pin_5);
}

// 点亮绿色LED
void led_green_ON(void)
{
    GPIO_ResetBits(GPIOB, GPIO_Pin_0);
}

// 关闭绿色LED
void led_green_OFF(void)
{
    GPIO_SetBits(GPIOB, GPIO_Pin_0);
}

// 点亮蓝色LED
void led_blue_ON(void)
{
    GPIO_ResetBits(GPIOB, GPIO_Pin_1);
}

// 关闭蓝色LED
void led_blue_OFF(void)
{
    GPIO_SetBits(GPIOB, GPIO_Pin_1);
}

// 点亮所有LED
void led_all_ON(void)
{
    GPIO_ResetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_5);
}

// 关闭所有LED
void led_all_OFF(void)
{
    GPIO_SetBits(GPIOB, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_5);
}
